<?php
/**
 * 
 * @todo description of this class
 * 
 * @author Alton Crossley <crossleyframework@nogahidebootstrap.com>
 * @package Crossley Framework
 *  
 * @copyright Copyright (c) 2003-2009, Nogaide BootStrap INC. All rights reserved.
 * @license BSD http://opensource.org/licenses/bsd-license.php
 * @version $Id:$
 * 
 */

/**
 * @namespace
 */
namespace X;

interface Filter
{
    /**
     * Do actual filtering here
     * Returns the string filtered
     *
     * @param  string|array $value
     * @return string|array (same as passed in)
     */
    public function filter($value);

    /**
     * static function allowing for quick instatiation and running of the filter
     *
     * @param string|array $xValue
     * @return string|array depending on what was passed
     */
    static function Process($value);
    
    /**
     * filter given value
     * the filter mus be allowed to be invoked
     * should call $this->filter with minimal addition
     * 
     * @param  string|array $value
     * @return string|array (same as passed in)
     */
    public function __invoke($value);
    
}
